Tartalom
[Mi az a kriptográfiai hash? 1](#mi-az-a-kriptográfiai-hash)
[A hash algoritmusok 1](#a-hash-algoritmusok)
[Miért fontosak a hash-ek? 2](#miért-fontosak-a-hash-ek)
[Blokklánc felhasználás 2](#blokklánc-felhasználás)
Mi az a kriptográfiai hash?
A kriptográfiai hash egy betűk és számok kombinációjából álló egyedi titkosító kód, amely a számítástechnikában gyakorlatilag az ujjlenyomat megfelelője. Függetlenül az input típusától vagy méretétől, bármihez lehet hash-t rendelni, amely – a kódoláshoz használt algoritmustól függően – minden esetben ugyanolyan hosszúságú lesz.
Az alább példa a „hello” szó SHA-256 algoritmussal titkosítva:
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Ha például egy regényhez szeretnénk hash-t rendelni, az SHA-256-tal szintén ugyanilyen karakterszámú hasht-t generálna.
A hash algoritmusok
A hash algoritmusok olyan programok, amelyek bármilyen informatika adatot hash formájában titkosítani tudnak.
Nézzük, mik a legközkedveltebb hash algoritmusok:
MD5 (Message Digest 5): Az MD5 egykor rendkívül népszerű volt például digitális aláírások és jelszavak hash-elésére. Annak ellenére, hogy még mindig sokkal gyorsabb megoldás, mint az újabb SHA-3 vagy SHA-256 algoritmusok, mára már elavultnak számít, mivel kompromittálható. Az MD5 hash 128 bit hosszú (16 byte), amely hexadecimális ábrázolásban 32 karakterből áll.
SHA-3 (Secure Hash Algorithm 3): A SHA-3 az MD5-nél már biztonságosabb megoldás, amely a korábbi SHA algoritmusok „gyengeségeit” hivatott kiküszöbölni. Legnagyobb előnye, hogy több kimeneti karakterszámot is támogat, így az 56, a 64, a 96 és a 128 bit-et is.
SHA-256 (Secure Hash Algorithm 256): A SHA-256 bármilyen bemenetet 256 bites, vagyis 64 karakter hosszú hash-é alakít át. Ezt az algoritmust széles körben használják a blokklánc-technológiában, például a Bitcoin is a SHA-256-tal biztosítja a tranzakciókat és blokkokat.
A hash hossza alapvetően a biztonsági szintet határozza mag. Ugyan minél több bit-ből, azaz karakterből áll egy hash, annál nehezebb azt generálni, viszont ugyancsak sokkal nehezebb azt visszafejteni és sokkal inkább ellenáll a felfejtést célzó kibertámadásoknak.
Miért fontosak a hash-ek?
A hash-eknek van néhány "szuperképessége", ami nélkülözhetetlenné teszi őket a blokkláncon tárolt adatok biztonságának szempontjából:
-
Egyirányúak: Bármilyen adathoz könnyű hash-t rendelni, viszont a hash-ből az adatot már szinte lehetetlen visszafejteni.
-
Ütközésállóak: Két különböző adat a gyakorlatban soha nem kaphatja meg ugyanazt a hash-t. Minél több bit-et generáló algoritmust használunk, az ütközésállóság annál nagyobb lesz.
-
Gyorsan generálhatóak: Hash-t gyakorlatilag azonnal hozzá lehet rendelni bármilyen adathoz.
-
Érzékenyek a változásokra: Bármilyen apró módosítás is történik az inputban, az teljesen más hash fog eredményezni.
Blokklánc felhasználás
Mivel a blokklánc egyik alapköve a titkosítás, ezért a hash algoritmusok, és így a hash-ek is rendkívül fontosak a rendszer működése szempontjából. Ezek az algoritmusok felelősek többek között a tranzakciók és a blokkok hash-jeinek a generálásáért, azaz titkosításáért.
A láncot alkotó blokkokat is hash-ek kötik össze. Ha valaki megpróbálná megváltoztatni az egyik blokk adatait, akkor az a blokk új hash értéket kapna, de mivel a következő blokk az eredeti hash-t tartalmazza, az eltérés azonnal látható lenne és ez az inkonzisztencia minden validáló node számára jelezné, hogy manipuláció történt.
Végeredményben elmondható, hogy a kriptográfiai hash egy rendkívül erős adattitkosítási eszköz, amely a biztonság érdekében egyedi „ujjlenyomatokat” rendel az adatokhoz. A blokkláncon továbbá a hash képezi a ragasztóanyagot, amely összeköti a blokkokat egymással és megvédi az információt a manipulációtól.
Ugyan a hash-generálás a blokklánc használata közben nem szembetűnő, mégis a háttérben ez az eljárás is biztosítja a blokklánc biztonságát és átláthatóságát.